#pragma once


#include "opencv2/opencv.hpp"
typedef void(*CameraCallback)(cv::Mat image, void* pcontext);


#include "spdlog/spdlog.h"
#include "spdlog/sinks/daily_file_sink.h"
#include "spdlog/fmt/ostr.h"
extern std::shared_ptr<spdlog::logger> logger;

class DhCameraInterface
{
public:
    CameraCallback m_CallBack ;
    void* m_Context;
    void* m_camera_handle = nullptr;

    virtual bool camera_init(char* name, CameraCallback pfunction, void* pcontext);

    virtual bool camera_end();

    virtual bool setExposureTime234(double value);

    virtual bool setGainValue234(double value);

    virtual bool getExposureTime234(double& value);

    virtual bool getGainValue234(double& value);

    virtual bool setTriggerMode234(std::string name);

    virtual bool setTriggerSource234(std::string name);

    virtual bool softwareTrigger234();

    virtual bool softwareTrigger01();

};

